<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
  // 数组方法2

  // 9. join方法
  // `join` 是把数组里面的每一项内容链接起来，变成一个字符串
  // 可以自己定义每一项之间链接的内容 `join(要以什么内容链接)`
  // join方法是不会改变原数组的
  // 返回值是改变以后的字符串
  // 可以不传参数，相当于","
  // 也可以自己传，传的就是连接的内容
  // var arr = [1, 2, 3, 4, 5];
  // var newArr = arr.join(",");
  // console.log(newArr);

  


  // 10. slice方法
  // slice 能够截取数组，并返回一个新的 数组不改变数组
  // 数组.slice(下标开始值,下标结束值)
  // 注意：从下标开始值开始，保留到 下标结束值的前一个结束，如果没有下标结束值（也就是没有第二个参数），就保留到最后一个字符结束。
  // 不改变数组
  // 返回值是截取的新数组
  // 如果一个参数，从那个参数对应的索引开始截取到最后
  // 如果两个参数a,b  ,[a, b)

  // var arr = [1,2,3,4,5];
  // var newArr = arr.slice(1, 4);
  // console.log(newArr);





  // 11. indexOf方法
  // 语法: 数组名.indexOf(要查找的数据)
  // 语法二: 数组名.indexOf(要查的数据,索引)
    // - 这个语法的意思是.要从指定的索引开始查找该数据,
    // - 如果有就放回该数据在原数组中第一个出现的位置,如果没有就返回 -1

  // 不会改变原数组
  // 第一个参数的时候，参数是要查找的元素，返回的是这个元素在数组里面第一次出现的索引,如果查不到，返回的是-1
  // 可以有第二个参数，第二个参数表示从第几个元素开始找
  // var arr = [1,2,5,7,8,7,4,2,1];
  // var i = arr.indexOf(7); // 3
  // var j = arr.indexOf(8); // 4
  // var k = arr.indexOf(9); // -1
  // console.log(k);

  // var x = arr.indexOf(1); // 0
  // var x = arr.indexOf(1, 1); // 9
  // console.log(x);





  // 12. includes方法
  // includes用于判断数组里面是否有某个元素
  // 不会改变原数组
  // 会返回一个布尔值
  // var arr = [1,2,5,7,8,7,4,2,1];
  // console.log(arr.includes(9));





  // 13. lastIndexOf方法
  // 语法一: 数组名.lastIndexOf(要查的数据)
  // 语法二: 数组名.lastIndexOf(要查找的数据,索引)
  // 这个语法的意思是.要从指定的索引开始查找该数据,
  // 如果有就放回该数据在原数组中第一个出现的位置,如果没有就返回 -1
  // 作用: 从后往前在数组中查找这个数据第一次出现的位置
  // 返回值: 如果该数组中有这个数据就返回这个数据第一个次出现的位置也就是索引,如果没有返回 -1

  // var arr = [1,2,5,7,8,7,4,2,1];
  // console.log(arr.lastIndexOf(1)); // 8
  // console.log(arr.lastIndexOf(2)); // 7
  // console.log(arr.lastIndexOf(2, 5)); // 1
  // console.log(arr.lastIndexOf(5, 1)); // -1  从第二个参数的位置往前找






  // a函数需要接受一个b函数作为参数
  // a函数是高阶函数
  // b函数是a函数的回调函数

  // 14. forEach方法
  // 作用：和 for 循环一个作用，就是用来遍历数组的
  // 需要一个函数作为参数
  // 这个函数有三个参数，分别是item(每一项的别名),index(这一项对应的索引，可选),arr(原数组本身，可选)
  // forEach是没有返回值的
  // var arr = [1,2,3,4,5,6,4,1];
  // for (var i = 0; i < arr.length; i++) {
  //   console.log(arr[i]);
  // }
  // arr.forEach(function(item, index, arr) {
  //   // console.log(item, index, arr);
  //   if (item % 2) {
  //     console.log(item);
  //   }
  // })



</script>